#ifndef NANE_FILEARCHIVESYSTEM_H
#   define  NANE_FILEARCHIVESYSTEM_H

#   include "nane/FileArchiveSystem/IFileArchiveSystem.h"
#   include "nane/core/SubSystem.h"
#   include "nane/core/crt/FileSystem.h"

#   include "nane/FileArchiveSystem/FileArchive.h"

namespace nane
{

    class FileArchiveSystem
        : public SubSystem<IFileArchiveSystem>
    {
    public:
        FileArchiveSystem();
        ~FileArchiveSystem();
        
    public:
        const char* GetFileType();
        FileArchive CreateArchive( const InputSeekablePtr& _input );
        FileArchive CreateArchive( const char* _filename );

    public:
        class Implementation;
        Implementation* m;
    };
}   // namespace nane

#endif	// NANE_FILEARCHIVESYSTEM_H
